<?php

namespace Sisesporte\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="endereco")
 * @ORM\Entity(repositoryClass="Sisesporte\Repository\CidadeRepository")
 */
class Endereco {

    public function __construct($options = null) {
        if (!is_null($options))
            Configurator::configure($this, $options);
    }

    /**
     * @var $sqEndereco
     * @ORM\Column(name="sq_endereco", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $sqEndereco;

    /**
     * @var Sisesporte\Entity\Pessoa $sqPessoa
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Pessoa", inversedBy="sq_pessoa")
     * @ORM\JoinColumn(name="sq_pessoa", referencedColumnName="sq_pessoa")
     */
    protected $sqPessoa;

    /**
     * @var string $nuCep
     * @ORM\Column(name="nu_cep", type="text", nullable=true    )
     */
    protected $nuCep;

    /**
     * @var string $noEndereco
     * @ORM\Column(name="no_endereco", type="text", nullable=true    )
     */
    protected $noEndereco;

    /**
     * @var string $noComplemento
     * @ORM\Column(name="no_complemento", type="text", nullable=true    )
     */
    protected $noComplemento;

    /**
     * @var string $noBairro
     * @ORM\Column(name="no_bairro", type="text", nullable=true    )
     */
    protected $noBairro;

    /**
     * @var Sisesporte\Entity\Cidade $sqCidade
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Cidade", inversedBy="sq_cidade")
     * @ORM\JoinColumn(name="sq_cidade", referencedColumnName="sq_cidade")
     */
    protected $sqCidade;

    /**
     * @var Sisesporte\Entity\Contato $sqContato
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Contato", inversedBy="sq_contato")
     * @ORM\JoinColumn(name="sq_contato", referencedColumnName="sq_contato")
     */
    protected $sqContato;

    /**
     * @var boolean $stAtivo
     * @ORM\Column(name="st_ativo", type="boolean", nullable=true)
     */
    protected $stAtivo;

    public function getSqEndereco() {
        return $this->sqEndereco;
    }

    public function getSqPessoa() {
        return $this->sqPessoa;
    }

    public function setSqPessoa(Pessoa $sqPessoa) {
        $this->sqPessoa = $sqPessoa;
        return $this;
    }

    public function getNuCep() {
        return $this->nuCep;
    }

    public function setNuCep($nuCep) {
        $this->nuCep = $nuCep;
        return $this;
    }

    public function getNoEndereco() {
        return $this->noEndereco;
    }

    public function setNoEndereco($noEndereco) {
        $this->noEndereco = $noEndereco;
        return $this;
    }

    public function getNoComplemento() {
        return $this->noComplemento;
    }

    public function setNoComplemento($noComplemento) {
        $this->noComplemento = $noComplemento;
        return $this;
    }

    public function getNoBairro() {
        return $this->noBairro;
    }

    public function setNoBairro($noBairro) {
        $this->noBairro = $noBairro;
        return $this;
    }

    public function getSqCidade() {
        return $this->sqCidade;
    }

    public function setSqCidade(Cidade $sqCidade) {
        $this->sqCidade = $sqCidade;
        return $this;
    }

    public function getSqContato() {
        return $this->sqContato;
    }

    public function setSqContato(Contato $sqContato) {
        $this->sqContato = $sqContato;
        return $this;
    }

    public function getStAtivo() {
        return $this->stAtivo;
    }

    public function setStAtivo($stAtivo) {
        $this->stAtivo = $stAtivo;
        return $this;
    }

    public function __toString() {
        return $this->noEndereco;
    }

    public function toArray() {
        return array(
            'sqEndereco' => $this->getSqEndereco(),
            'sqPessoa' => $this->getSqPessoa()->getSqPessoa(),
            'sqContato' => $this->getSqContato()->getSqContato(),
            'nuCep' => $this->getNuCep(),
            'noEndereco' => $this->getNoEndereco(),
            'noComplemento' => $this->getNoComplemento(),
            'noBairro' => $this->getNoBairro(),
            'sqCidade' => $this->getSqCidade()->getSqCidade(),
            'stAtivo' => $this->getStAtivo()
        );
    }

}
